lang/README.de.md v4.5.0-rc.5 (eee4a4d7) Text, 16.65 KB
Tc9d1d9# Reticulum MeshChatX
[Tff7b72English](Te6edf3../README.md) | [Tff7b72Русский](Te6edf3README.ru.md) | [Tff7b72Italiano](Te6edf3README.it.md) | [Tff7b72中文](Te6edf3README.zh.md) | [Tff7b72日本語](Te6edf3README.ja.md)
Ein umfassend modifizierter und funktionsreicher Fork von Reticulum MeshChat von Liam Cottle.
Dieses Projekt ist unabhaengig vom originalen Reticulum MeshChat und steht in keiner Verbindung dazu.
Tff7b72- Website: [Tff7b72meshchatx.com](Te6edf3https://meshchatx.com)
Tff7b72- Quellcode: [Tff7b72git.quad4.io/RNS-Things/MeshChatX](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX)
Tff7b72- Offizieller Spiegel: [Tff7b72github.com/Quad4/MeshChatX](Te6edf3https://github.com/Quad4/MeshChatX) – derzeit auch fuer Windows- und macOS-Builds genutzt.
Tff7b72- Releases: [Tff7b72git.quad4.io/RNS-Things/MeshChatX/releases](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/releases)
Tff7b72- Aenderungsprotokoll: [Ta5d6ff`CHANGELOG.md`](../CHANGELOG.md)
Tff7b72- TODO: [Tff7b72Boards](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX/projects)
Tc9d1d9## Wichtige Aenderungen gegenueber Reticulum MeshChat
Tff7b72- Verwendet LXST
Tff7b72- Peewee-ORM durch direktes SQL ersetzt
Tff7b72- Axios durch natives Ta5d6ff`fetch` ersetzt
Tff7b72- Electron 41.x (mit Node-24-Laufzeit)
Tff7b72- Ta5d6ff`.whl`-Pakete mit Webserver und eingebauten Frontend-Assets fuer mehr Deploy-Optionen
Tff7b72- i18n
Tff7b72- PNPM und Poetry fuer Abhaengigkeiten
Tff7b72> [!WARNING]
Tff7b72> MeshChatX garantiert keine Datenkompatibilitaet mit aelteren Reticulum-MeshChat-Versionen. Erstellen Sie vor Migration oder Tests eine Datensicherung.
Tff7b72> [!WARNING]
Tff7b72> Aeltere Systeme werden noch nicht vollstaendig unterstuetzt. Aktuelle Mindestanforderungen: Python `>=3.11` und Node `>=24` (Electron 41 entspricht Node 24; `engines` in `package.json` und CI folgen derselben Vorgabe).
Tc9d1d9## Voraussetzungen
Tff7b72- Python Ta5d6ff`>=3.11` (aus Ta5d6ff`pyproject.toml`)
Tff7b72- Node.js Ta5d6ff`>=24` (aus Ta5d6ff`package.json`, Feld Ta5d6ff`engines`)
Tff7b72- pnpm Ta5d6ff`10.33.0` (aus Ta5d6ff`package.json`, Feld Ta5d6ff`packageManager`)
Tff7b72- Poetry (verwendet in Ta5d6ff`Taskfile.yml` und CI-Workflows)
Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```
Tc9d1d9## Installationsmethoden
Waehlen Sie die Methode passend zu Umgebung und Paketierung.
| Methode | Frontend enthalten | Architekturen | Geeignet fuer |
| --------------------- | ------------------ | ------------------------------------- | ----------------------------------- |
| Docker-Image | Ja | Ta5d6ff`linux/amd64`, Ta5d6ff`linux/arm64` | Schnellster Start auf Linux-Servern |
| Python Wheel (Ta5d6ff`.whl`) | Ja | Jede Python-unterstuetzte Architektur | Headless/Webserver ohne Node-Build |
| Linux AppImage | Ja | Ta5d6ff`x64`, Ta5d6ff`arm64` | Portabler Desktop-Einsatz |
| Debian-Paket (Ta5d6ff`.deb`) | Ja | Ta5d6ff`x64`, Ta5d6ff`arm64` | Debian/Ubuntu-Installation |
| RPM-Paket (Ta5d6ff`.rpm`) | Ja | CI-abhaengig | Fedora/RHEL/openSUSE |
| Aus Quellcode | Lokal gebaut | Host-Architektur | Entwicklung und individuelle Builds |
Hinweise:
Tff7b72- Der Release-Workflow baut explizit Linux Ta5d6ff`x64` und Ta5d6ff`arm64` AppImage + DEB.
Tff7b72- RPM wird ebenfalls versucht und bei Erfolg hochgeladen.
Tc9d1d9## Schnellstart: Docker
Ta5d6ff```Ta5d6ffbash
docker compose up -d
Ta5d6ff```
Standard-Compose-Datei:
Tff7b72- Ta5d6ff`127.0.0.1:8000` auf dem Host -> Container-Port Ta5d6ff`8000`
Tff7b72- Ta5d6ff`./meshchat-config` -> Ta5d6ff`/config` fuer Persistenz
Bei Berechtigungsproblemen:
Ta5d6ff```Ta5d6ffbash
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Ta5d6ff```
Tc9d1d9## Installation aus Release-Artefakten
Tc9d1d9### 1) Linux AppImage (x64/arm64)
Tff7b721. Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.AppImage` von den Releases herunterladen.
Tff7b722. Ausfuehrbar machen und starten:
Ta5d6ff```Ta5d6ffbash
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
Ta5d6ff```
Tc9d1d9### 2) Debian/Ubuntu `.deb` (x64/arm64)
Tff7b721. Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.deb` herunterladen.
Tff7b722. Installieren:
Ta5d6ff```Ta5d6ffbash
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
Ta5d6ff```
Tc9d1d9### 3) RPM-basierte Systeme
Tff7b721. Ta5d6ff`ReticulumMeshChatX-v<version>-linux-<arch>.rpm` herunterladen, falls im Release vorhanden.
Tff7b722. Installieren:
Ta5d6ff```Ta5d6ffbash
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
Ta5d6ff```
Tc9d1d9### 4) Python Wheel (`.whl`)
Release-Wheels enthalten die gebauten Web-Assets.
Ta5d6ff```Ta5d6ffbash
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
Ta5d6ff```
Ta5d6ff`pipx` wird ebenfalls unterstuetzt:
Ta5d6ff```Ta5d6ffbash
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Ta5d6ff```
Tc9d1d9## Aus Quellcode ausfuehren (Webserver-Modus)
Fuer Entwicklung oder lokale Custom-Builds.
Ta5d6ff```Ta5d6ffbash
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm config Tffa657set verify-store-integrity Tffa657true
pnpm install --frozen-lockfile
pip install Ta5d6ff"poetry==2.3.4"
poetry check --lock
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1
Ta5d6ff```
Hinweise zu den Installationsbefehlen:
Tff7b72- Ta5d6ff`pnpm install --frozen-lockfile` verweigert Aenderungen an Ta5d6ff`pnpm-lock.yaml` und schlaegt fehl, wenn die Lockdatei nicht zu Ta5d6ff`package.json` passt. Damit wird verhindert, dass eine unerwartete Upstream-Version still eingespielt wird.
Tff7b72- Ta5d6ff`verify-store-integrity=true` ist auch in der projektweiten Ta5d6ff`.npmrc` gesetzt; die explizite Ta5d6ff`pnpm config set`-Zeile haertet zusaetzlich die Benutzerkonfiguration.
Tff7b72- Lifecycle-Skripte (Ta5d6ff`preinstall`/Ta5d6ff`postinstall`) sind in pnpm v10+ standardmaessig blockiert. Nur die unter Ta5d6ff`pnpm.onlyBuiltDependencies` in Ta5d6ff`package.json` aufgefuehrten Pakete duerfen Installationsskripte ausfuehren (aktuell Ta5d6ff`electron`, Ta5d6ff`electron-winstaller`, Ta5d6ff`esbuild`, Ta5d6ff`protobufjs`).
Tff7b72- Ta5d6ff`poetry check --lock` schlaegt frueh fehl, wenn Ta5d6ff`poetry.lock` nicht mit Ta5d6ff`pyproject.toml` synchron ist; Ta5d6ff`poetry install` aufloest danach nur aus der Lockdatei.
Tff7b72- Fuer eine strikte Lockfile-Installation (ohne implizite Lock-Aktualisierung) Poetry mit Ta5d6ff`pip install "poetry==2.3.4"` pinnen, passend zur CI-Version.
Wenn Sie absichtlich Abhaengigkeiten aktualisieren wollen, fuehren Sie Ta5d6ff`pnpm update` / Ta5d6ff`poetry update` in einem dedizierten Commit aus und pruefen Sie das resultierende Lockdatei-Diff vor dem Push.
Tc9d1d9## Sandboxing (Linux)
Um das native Ta5d6ff`meshchatx`-Programm (Alias: Ta5d6ff`meshchat`) mit zusaetzlicher Dateisystem-Isolation auszufuehren, koennen Sie **Firejail** oder **Bubblewrap** (Ta5d6ff`bwrap`) nutzen, bei weiterhin normalem Netzwerkzugriff fuer Reticulum und die Web-Oberflaeche. Vollstaendige Beispiele (pip/pipx, Poetry, Hinweise zu USB-Seriell) finden Sie in:
Tff7b72- [Ta5d6ff`docs/meshchatx_linux_sandbox.md`](../docs/meshchatx_linux_sandbox.md)
Dieselbe Seite erscheint in der in-app-**Dokumentation** (MeshChatX-Docs), wenn sie aus den gebuendelten oder synchronisierten Ta5d6ff`meshchatx-docs`-Dateien ausgeliefert wird.
Tc9d1d9## Linux-Desktop: Emoji-Schriften
Die Emoji-Auswahl rendert Standard-Unicode-Emoji mit den Systemschriften (Electron/Chromium). Wenn Emoji als leere Kaestchen („Tofu“) erscheinen, installieren Sie ein Farb-Emoji-Paket und starten Sie die App neu.
| Distribution (Beispiele) | Paket |
| -------------------------- | -------------------------------------------------------------------- |
| Arch Linux, Artix, Manjaro | Ta5d6ff`noto-fonts-emoji` (Ta5d6ff`sudo pacman -S noto-fonts-emoji`) |
| Debian, Ubuntu | Ta5d6ff`fonts-noto-color-emoji` (Ta5d6ff`sudo apt install fonts-noto-color-emoji`) |
| Fedora | Ta5d6ff`google-noto-emoji-color-fonts` |
Nach der Installation bei Bedarf Ta5d6ff`fc-cache -fv` ausfuehren. Optional: Ta5d6ff`noto-fonts` fuer breitere Symbolabdeckung bei minimalen Installationen.
Tc9d1d9## Desktop-Pakete aus Quellcode bauen
Diese Skripte sind in Ta5d6ff`package.json` und Ta5d6ff`Taskfile.yml` definiert.
Tc9d1d9### Linux x64 AppImage + DEB
Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-x64
Ta5d6ff```
Tc9d1d9### Linux arm64 AppImage + DEB
Ta5d6ff```Ta5d6ffbash
pnpm run dist:linux-arm64
Ta5d6ff```
Tc9d1d9### RPM
Ta5d6ff```Ta5d6ffbash
pnpm run dist:rpm
Ta5d6ff```
Oder ueber Task:
Ta5d6ff```Ta5d6ffbash
task dist:fe:rpm
Ta5d6ff```
Tc9d1d9## Architekturunterstuetzung
Tff7b72- Docker-Image: Ta5d6ff`amd64`, Ta5d6ff`arm64`
Tff7b72- Linux AppImage: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Linux DEB: Ta5d6ff`x64`, Ta5d6ff`arm64`
Tff7b72- Windows: Ta5d6ff`x64`, Ta5d6ff`arm64` (Build-Skripte vorhanden)
Tff7b72- macOS: Build-Skripte vorhanden (Ta5d6ff`arm64`, Ta5d6ff`universal`) fuer lokale Build-Umgebungen
Tff7b72- Android: native APKs — ABIs Ta5d6ff`arm64-v8a`, Ta5d6ff`x86_64`, plus universal
Tc9d1d9## Android
MeshChatX unterstuetzt native Android-APK-Builds (nicht nur Termux).
Tc9d1d9### APKs aus Quellcode bauen
Vom Repository-Root:
Ta5d6ff```Ta5d6ffbash
T8b949e# 1) Chaquopy-Wheels gemaess android/app/build.gradle bauen
bash scripts/build-android-wheels-local.sh
T8b949e# 2) Standard-Slim-APKs bauen (universal: ein APK pro Flavor und Build-Typ)
Tffa657cd android
./gradlew --no-daemon :app:assembleSlimDebug :app:assembleSlimRelease
Ta5d6ff```
Ausgaben richten sich nach **Product Flavors** Ta5d6ff`slim` / Ta5d6ff`full` (Groesse des Python-Baums) und **ABI-Packaging** Ta5d6ff`universal` (Standard) oder Ta5d6ff`split` (siehe Ta5d6ff`android/app/build.gradle`).
Mit **`-PmeshchatxAbiPackaging=universal`** (Standard) enthaelt ein APK alle gewaehlten ABIs.
Debug (Ta5d6ff`android/app/build/outputs/apk/slim/debug/`):
Tff7b72- Ta5d6ff`app-slim-debug.apk`
Release (Ta5d6ff`android/app/build/outputs/apk/slim/release/`):
Tff7b72- Ta5d6ff`app-slim-release-unsigned.apk`
Fuer den vollen Python-Baum: Ta5d6ff`:app:assembleFullDebug` oder Ta5d6ff`:app:assembleFullRelease`.
Hinweise:
Tff7b72- Release-Ausgaben sind standardmaessig unsigniert, sofern keine Signatur konfiguriert ist.
Tff7b72- Fuer eine einzelne Build-Variante z. B.: Ta5d6ff`:app:assembleSlimDebug` oder Ta5d6ff`:app:assembleSlimRelease`.
Tff7b72- ABI: Ta5d6ff`-PmeshchatxAbis` oder Ta5d6ff`MESHCHATX_ABIS`; Packaging: Ta5d6ff`-PmeshchatxAbiPackaging` oder Ta5d6ff`MESHCHATX_ABI_PACKAGING`.
Tff7b72- Chaquopy-Baum Ta5d6ff`meshchatx/`: **`slim`** nach Ta5d6ff`src/slim/python/`, **`full`** nach Ta5d6ff`src/full/python/`. Details in [Ta5d6ff`android/README.md`](../android/README.md).
Weitere Dokumentation:
Tff7b72- [Ta5d6ff`docs/meshchatx_on_android_with_termux.md`](../docs/meshchatx_on_android_with_termux.md)
Tff7b72- [Ta5d6ff`android/README.md`](../android/README.md)
Tc9d1d9## Konfiguration
| Argument | Umgebungsvariable | Standard | Beschreibung |
| -------------------------- | ---------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ta5d6ff`--host` | Ta5d6ff`MESHCHAT_HOST` | Ta5d6ff`127.0.0.1` | Webserver-Bind-Adresse |
| Ta5d6ff`--port` | Ta5d6ff`MESHCHAT_PORT` | Ta5d6ff`8000` | Webserver-Port |
| Ta5d6ff`--no-https` | Ta5d6ff`MESHCHAT_NO_HTTPS` | Ta5d6ff`false` | HTTPS deaktivieren |
| Ta5d6ff`--ssl-cert` / Ta5d6ff`--ssl-key` | Ta5d6ff`MESHCHAT_SSL_CERT` / Ta5d6ff`MESHCHAT_SSL_KEY` | (keine) | PEM-Zertifikat und Schluessel; beide setzen. Ueberschreibt automatisch erzeugte Zertifikate unter der Identitaet im Verzeichnis Ta5d6ff`ssl/`. |
| Ta5d6ff`--rns-log-level` | Ta5d6ff`MESHCHAT_RNS_LOG_LEVEL` | (keine) | Reticulum (RNS) Log-Level: Ta5d6ff`none`, Ta5d6ff`critical`, Ta5d6ff`error`, Ta5d6ff`warning`, Ta5d6ff`notice`, Ta5d6ff`verbose`, Ta5d6ff`debug`, Ta5d6ff`extreme` oder numerisch. CLI ueberschreibt die Umgebungsvariable, wenn beide gesetzt sind. |
| Ta5d6ff`--headless` | Ta5d6ff`MESHCHAT_HEADLESS` | Ta5d6ff`false` | Browser nicht automatisch oeffnen |
| Ta5d6ff`--auth` | Ta5d6ff`MESHCHAT_AUTH` | Ta5d6ff`false` | Basis-Authentifizierung aktivieren |
| Ta5d6ff`--storage-dir` | Ta5d6ff`MESHCHAT_STORAGE_DIR` | Ta5d6ff`./storage` | Datenverzeichnis |
| Ta5d6ff`--public-dir` | Ta5d6ff`MESHCHAT_PUBLIC_DIR` | auto/bundled | Frontend-Verzeichnis (fuer Installationen ohne gebundelte Assets) |
Tc9d1d9## Branches
| Branch | Zweck |
| -------- | ------------------------------------------------------------------------------ |
| Ta5d6ff`master` | Stabile Releases. Nur produktionsreifer Code. |
| Ta5d6ff`dev` | Aktive Entwicklung. Kann instabile oder unvollstaendige Aenderungen enthalten. |
Tc9d1d9## Entwicklung
Gaengige Aufgaben aus Ta5d6ff`Taskfile.yml`:
Ta5d6ff```Ta5d6ffbash
task install
task lint:all
task test:all
task build:all
Ta5d6ff```
Ta5d6ff`Makefile`-Kurzformen:
| Befehl | Beschreibung |
| -------------- | --------------------------------------------- |
| Ta5d6ff`make install` | pnpm- und Poetry-Abhaengigkeiten installieren |
| Ta5d6ff`make run` | MeshChatX ueber Poetry starten |
| Ta5d6ff`make build` | Frontend bauen |
| Ta5d6ff`make lint` | eslint und ruff ausfuehren |
| Ta5d6ff`make test` | Frontend- und Backend-Tests |
| Ta5d6ff`make clean` | Build-Artefakte und node_modules entfernen |
Tc9d1d9## Versionierung
Aktuelle Version in diesem Repository: Ta5d6ff`4.5.0`.
Tff7b72- Ta5d6ff`package.json` ist die Quelle fuer die JavaScript/Electron-Version.
Tff7b72- Ta5d6ff`meshchatx/src/version.py` wird aus Ta5d6ff`package.json` synchronisiert mit:
Ta5d6ff```Ta5d6ffbash
pnpm run version:sync
Ta5d6ff```
Fuer konsistente Releases die Versionsfelder dort abgleichen, wo noetig (Ta5d6ff`package.json`, Ta5d6ff`pyproject.toml`, Ta5d6ff`meshchatx/__init__.py`).
Tc9d1d9## Sicherheit
Tff7b72- [Ta5d6ff`SECURITY.md`](../SECURITY.md)
Tff7b72- Integrierte Integritaetspruefungen und HTTPS/WSS-Standardeinstellungen in der App
Tff7b72- CI-Scanning-Workflows in Ta5d6ff`.gitea/workflows/`
Tc9d1d9## Sprache hinzufuegen
Die Locale-Erkennung erfolgt automatisch. Legen Sie eine neue Datei unter Ta5d6ff`meshchatx/src/frontend/locales/` an (z. B. Ta5d6ff`xx.json`) mit denselben Schluesseln wie Ta5d6ff`en.json` und einem obersten Feld Ta5d6ff`_languageName` fuer die Anzeige in der Sprachauswahl. Sie koennen Ta5d6ff`en.json` kopieren und alles von Hand uebersetzen; **maschinelle Erzeugung ist optional** und nie verpflichtend.
**Korrekturen und menschliche Uebersetzungen sind willkommen.** Verbesserungen an bestehenden Locale-Dateien oder vollstaendig manuell uebersetzte Dateien koennen Sie per Pull Request oder Issue im [Tff7b72Quellcode-Repository](Te6edf3https://git.quad4.io/RNS-Things/MeshChatX) oder beim [Tff7b72GitHub-Spiegel](Te6edf3https://github.com/Sudo-Ivan/MeshChatX) einreichen.
**Optional: Argos-Translate-Bootstrap** -- Wenn Sie einen maschinellen Erstentwurf aus Ta5d6ff`en.json` wollen, koennen Sie Ta5d6ff`scripts/argos_translate.py` nutzen. Es kuemmert sich um Formatierung und schuetzt Interpolationsvariablen (wie Ta5d6ff`{count}`) vor versehentlichen Aenderungen.
Ta5d6ff```Ta5d6ffbash
T8b949e# Installieren Sie argostranslate, falls noch nicht geschehen
pip install argostranslate
T8b949e# Fuehren Sie das Uebersetzungsskript aus
python scripts/argos_translate.py --from en --to xx --input meshchatx/src/frontend/locales/en.json --output meshchatx/src/frontend/locales/xx.json --name Ta5d6ff"Ihr Sprachname"
Ta5d6ff```
Nach einem maschinellen Entwurf sollten ein LLM oder ein Mensch Grammatik, Kontext und Ton pruefen (z. B. formell vs. informell).
Schluesselparitaet pruefen: Ta5d6ff`pnpm test -- tests/frontend/i18n.test.js --run`
Keine weiteren Code-Aenderungen noetig. App, Sprachwahl und Tests lesen Locales zur Build-Zeit aus Ta5d6ff`meshchatx/src/frontend/locales/`.
Tc9d1d9## Mitwirkende
Tff7b72- [Tff7b72Liam Cottle](Te6edf3https://github.com/liamcottle) - Originales Reticulum MeshChat
Tff7b72- [Tff7b72RFnexus](Te6edf3https://github.com/RFnexus) - Micron-Parser (JavaScript)
Tff7b72- [Tff7b72markqvist](Te6edf3https://github.com/markqvist) - Reticulum, LXMF, LXST
Tc9d1d9## Lizenz
Die projekt-eigenen Anteile stehen unter 0BSD.
Urspruengliche Upstream-Anteile von MeshChat bleiben unter MIT.
Vollstaendiger Text und Hinweise in [Ta5d6ff`../LICENSE`](../LICENSE).
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────